using UwinEducation.Shared.Enums;

namespace UwinEducation.Application.Dtos
{
    /// <summary>
    /// 学生缴费DTO
    /// </summary>
    public class StudentPaymentDto
    {
        /// <summary>
        /// ID
        /// </summary>
        public Guid Id { get; set; }

        /// <summary>
        /// 学生ID
        /// </summary>
        public Guid StudentId { get; set; }
        /// <summary>
        /// 教师课表组ID
        /// </summary>
        public Guid TeacherScheduleGroupId { get; set; }

        /// <summary>
        /// 学生姓名
        /// </summary>
        public string StudentName { get; set; }

        /// <summary>
        /// 缴费金额
        /// </summary>
        public decimal PaidAmount { get; set; }

        /// <summary>
        /// 缴费日期
        /// </summary>
        public DateTime PaymentDate { get; set; }

        /// <summary>
        /// 缴费状态
        /// </summary>
        public PaymentStatus Status { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string Remarks { get; set; }

        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreatedAt { get; set; }

        /// <summary>
        /// 更新时间
        /// </summary>
        public DateTime? UpdatedAt { get; set; }
    }

    /// <summary>
    /// 创建学生缴费DTO
    /// </summary>
    public class CreateStudentPaymentDto
    {
        /// <summary>
        /// 学生ID
        /// </summary>
        public Guid StudentId { get; set; }

        /// <summary>
        /// 教师课表组ID
        /// </summary>
        public Guid TeacherScheduleGroupId { get; set; }

        /// <summary>
        /// 总金额
        /// </summary>

        public decimal TotalAmount { get; set; }

        /// <summary>
        /// 缴费金额
        /// </summary>
        public decimal Amount { get; set; }

        /// <summary>
        /// 缴费日期
        /// </summary>
        public DateTime PaymentDate { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string Remarks { get; set; }
    }

    /// <summary>
    /// 更新学生缴费DTO
    /// </summary>
    public class UpdateStudentPaymentDto
    {
        /// <summary>
        /// 学生ID
        /// </summary>
        public Guid StudentId { get; set; }

        /// <summary>
        /// 课程ID
        /// </summary>
        public Guid TeacherScheduleGroupId { get; set; }
        /// <summary>
        /// 已经缴费金额
        /// </summary>
        public decimal PaidAmount { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string? Remarks { get; set; }
    }

    public class StudentPaymentQuery
    {
        public Guid StudentId { get; set; }
        public Guid TeacherScheduleGroupId { get; set; }
    }
}